package cn.fl.ref.fncprjeaplysettle.transform;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

import cn.cmm.base.framework.utils.CollectionUtils;
import cn.fl.ref.fncprjeaplysettle.vo.SettlePrjDetailVO;
import fl.ref.fncprjeaplysettle.dto.SettlePrjDetailDTO;

/**
 * @Description: 融资项目信息
 */
public class SettlePrjDetailVOTransform {

	/**
	 * 分转元
	 * @param number
	 * @return
	 */
	public static BigDecimal fenToYuan(BigDecimal number){
		if(number!=null&&number!=new BigDecimal(0)){
			return number.divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP);
		}
		return null;
	}
	
	/**
	 * 元转分
	 * @param number
	 * @return
	 */
	public static BigDecimal yuanToFen(BigDecimal number){
		if(number!=null&&number!=new BigDecimal(0)){
			return number.multiply(new BigDecimal(100));
		}
		return null;
	} 
	
	/**
	 * VO 转 DTO
	 * 
	 * @param vo
	 * @return
	 */
	public static SettlePrjDetailDTO toDTO(SettlePrjDetailVO vo) {
		SettlePrjDetailDTO dto = null;
		if (vo != null) {
			dto = new SettlePrjDetailDTO();
			dto.setFncPrjId(vo.getFncPrjId());// 融资项目编号
			dto.setFncPrjIdStr(vo.getFncPrjIdStr());// 融资项目编号
			dto.setFncPrjNm(vo.getFncPrjNm());// 项目名称
			dto.setFncPrjStcd(vo.getFncPrjStcd()); // 项目状态代码
			dto.setCrtTm(vo.getCrtTm());// 创建日期
			dto.setRlNm(vo.getRlNm()); // 融资经理（ 用户名称）  
			dto.setPayCnt(vo.getPayCnt());
			//元转分
			dto.setFncPrjAmt(yuanToFen(vo.getFncPrjAmt()));// 项目金额
			dto.setFncFiAmt(yuanToFen(vo.getFncFiAmt()));// 融资金额
			dto.setTransAm(yuanToFen(dto.getTransAm()));
			dto.setTotalFa(yuanToFen(vo.getTotalFa()));
			dto.setTotalPua(yuanToFen(vo.getTotalPua()));
			dto.setFncInsNm(vo.getFncInsNm());
			dto.setFncScmNm(vo.getFncScmNm());
			dto.setFncInsId(vo.getFncInsId());
			dto.setFncPrjEaplySettle(FncPrjEaplySettleVOTransform.toDTO(vo.getFncPrjEaplySettle()));
		}
		return dto;
	}

	/**
	 * DTO 转 VO
	 * 
	 * @param dto
	 * @return
	 */
	public static SettlePrjDetailVO toVO(SettlePrjDetailDTO dto) {
		SettlePrjDetailVO vo = null;
		if (dto != null) {
			vo = new SettlePrjDetailVO();
			vo.setFncPrjId(dto.getFncPrjId());// 融资项目编号
			vo.setFncPrjIdStr(dto.getFncPrjIdStr());// 融资项目编号
			vo.setFncPrjNm(dto.getFncPrjNm());// 项目名称
			vo.setFncPrjStcd(dto.getFncPrjStcd()); // 项目状态代码
			vo.setCrtTm(dto.getCrtTm());// 创建日期
			vo.setRlNm(dto.getRlNm()); // 融资经理（ 用户名称）
			vo.setPayCnt(dto.getPayCnt());
		
			//分转元
			vo.setFncPrjAmt(fenToYuan(dto.getFncPrjAmt()));// 项目金额
			vo.setFncFiAmt(fenToYuan(dto.getFncFiAmt()));// 融资金额
			vo.setTransAm(fenToYuan(dto.getTransAm()));
			vo.setTotalFa(fenToYuan(dto.getTotalFa()));
			vo.setTotalPua(fenToYuan(dto.getTotalPua()));
			
			vo.setFncInsNm(dto.getFncInsNm());
			vo.setFncScmNm(dto.getFncScmNm());
			vo.setFncInsId(dto.getFncInsId());
			vo.setFncPrjEaplySettle(FncPrjEaplySettleVOTransform.toVO(dto.getFncPrjEaplySettle()));
		}
		return vo;
	}

	/**
	 * VO集合 转 DTO集合
	 * 
	 * @param list
	 * @return
	 */
	public static List<SettlePrjDetailDTO> toDTOList(List<SettlePrjDetailVO> lstVo){
		List<SettlePrjDetailDTO> dtoLst = new ArrayList<SettlePrjDetailDTO>();
		if(lstVo!=null && lstVo.size()>0){
			for(SettlePrjDetailVO vo : lstVo){
				SettlePrjDetailDTO dto = toDTO(vo);
				dtoLst.add(dto);
			}
		}
		return dtoLst;
	}
	
	/**
	 * DTO集合 转 PO集合
	 * 
	 * @param list
	 * @return
	 */
	public static List<SettlePrjDetailVO> toVOList(List<SettlePrjDetailDTO> list) {
		List<SettlePrjDetailVO> voList = new ArrayList<SettlePrjDetailVO>();
		if (CollectionUtils.isNotEmpty(list)) {
			for (SettlePrjDetailDTO dto : list) {
				voList.add(toVO(dto));
			}
		}
		return voList;
	}

}
